package com.ys.day28.udp通信方式;

import java.net.DatagramPacket;
import java.net.DatagramSocket;

/**
 * 描述: UdpReceive
 * TCP 与 UDP 都是阻塞式的编程
 * Udp 的接收方
 *   udp的接收方比发送方要重要
 * 接收方负责接收发送方的数据
 *
 * @author CodeYang
 * @version 2021/1/9 19:22
 */
public class UdpReceive {

    public static void main(String[] args) {

        try(    // 注册UDP
                DatagramSocket datagramSocket = new DatagramSocket(48092)
             )
         {
             // 用来接收数据
             byte[] data = new byte[1024];
             // 创建 用户数据报的包对象
             DatagramPacket datagramPacket =  new DatagramPacket(data,data.length);
             // 接受数据 该方法是一个阻塞式方法，没有接收到数据之前一直会阻塞
             // 该方法会将接收到的数据封装到pck对象中
             datagramSocket.receive(datagramPacket);

             // pck.getData() 表示接收的数据，0 表示从头开始接收，pck.getLength()数据的长度
             byte[] bytes = datagramPacket.getData();
             String str1 = new String(bytes);
             System.out.println(str1);


             System.out.println("receive in data :"+str1);

        }catch (Exception e){
            System.out.println("接收失败");
            e.printStackTrace();
        }
    }
}
